
#ifndef __LIBERTY_LIBRARY_BOOSTMUTEXPROVIDER_H__
#define __LIBERTY_LIBRARY_BOOSTMUTEXPROVIDER_H__

#include <boost/thread/shared_mutex.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/locks.hpp>

namespace Liberty { namespace Library { namespace Mutex {
    class Boost {
    public:
        typedef boost::shared_mutex                  Mutex;
        typedef boost::shared_lock<Mutex>            SharedLock;
        typedef boost::unique_lock<Mutex>            UniqueLock;
        typedef boost::upgrade_lock<Mutex>           UpgradableLock;
        typedef boost::upgrade_to_unique_lock<Mutex> UpgradedLock;
    };
}}}

#endif
